#直接从包导入工具
from hm_message import send_message
send_message.send()
#从包对应的模块中导入工具
from hm_message.receive_message import receive
#使用工具
receive()
#定义函数
def stu_info(name,age,gender="男"):
    print(f"{name}的年龄是：{age},性别是：{gender}")
#调用函数
stu_info("张三",18)
stu_info("李四",19,"女")
stu_info(19,"王五","女")
stu_info(age=19,name="王五",gender="女")

#定义多值参数的函数
def func(*args):
    print(args)

#1.定义函数
def sum_numbers(*args):
    #定义初始结果变量
    result=0
    #先取出元素
    for i in args:
        #在累加求和
        result+=i
    #返回结果
    return f"累加的结果是：{result}"
#2.调用函数
aa=sum_numbers(1,2,3,4,5,6)
print(aa)

#1.定义函数
def demo(a,b):
    result=a+b
    return result
print(demo(10,20))

#匿名函数实现两个数字求和
result = lambda a,b:a+b
#使用匿名函数
print(result(10,20))

#已知用户信息数据
user_list=[
    {'name':'张三','age':22,'title':'测试工程师'},
    {'name': '李四', 'age': 24, 'title': '开发工程师'},
    {'name': '王五', 'age': 21, 'title': '测试工程师'}
]
keys=lambda  x:x.get("age")
#1.直接进行排序
user_list.sort(key=keys)
#打印原始列表
print(user_list)
#降序
user_list.sort(key=keys,reverse=True)
#打印原始列表
print(user_list)

#尝试执行的代码
try:
    num=int(input("请输入一个整数："))
    result=8/num
    print(result)
    #捕获特定异常后的代码
except ZeroDivisionError:
    print("除数不能为0")
#尝试执行的代码
try:
    num=int(input("请输入一个整数："))
    result=8/num
    print(result)
    #捕获所有异常后执行的代码
except Exception as e:
    print(f"捕获的异常类型有：{e}")
#尝试执行的代码
try:
    num = int(input("请输入数字："))
except ValueError:#已知错误类型
    print("输入的是非数字")
except Exception as e:#未知错误类型
    print(f"其他类型错误:{e}")
else:#上述都不满足情况
    if num % 2 ==0:
        print("偶数")
    else:
        print("奇数")
finally:#不管上述满不满足都执行
    print("程序运行结束")

def input_password():
    pwd =input("请输入密码：")
    if len(pwd)<8:
        ex=Exception("输入密码长度不足8位")
        raise ex
    else:
        return pwd
if __name__ == '__main__':
    try:
        print(input_password())
    except Exception as e:
        print(e)

